/**
 * cookie 存取方法
 * @param {Strig} name 名称
 * @param {String} value 值
 * @param {Object} options 配置项
 * @example 
 *  //  简单写入一条 Cookie 信息
        cookie("user", "baidu");
    // 写入一条 Cookie 信息，并且设置更多选项
        cookie("user", "baidu", {
            expires: 10, // 有效期为 10 天
            path: "/", // 整个站点有效
            domain: "www.baidu.com", // 有效域名
            secure: true // 加密数据传输
        });
 */
let Cookie = function(name, value, options) {
    // 如果第二个参数存在
    if (typeof value !== 'undefined') {
      options = options || {};
      if (value === null) {
        // 设置失效时间
        options.expires = -1;
      }
      let expires = '';
      // 如果存在事件参数项，并且类型为 number，或者具体的时间，那么分别设置事件
      if (options.expires && (typeof options.expires === 'number' || options.expires.toUTCString)) {
        let date;
        if (typeof options.expires === 'number') {
          date = new Date();
          date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
        } else {
          date = options.expires;
        }
        expires = '; expires=' + date.toUTCString();
      }
      let path = options.path ? '; path=' + options.path : '', // 设置路径
        domain = options.domain ? '; domain=' + options.domain : '', // 设置域
        secure = options.secure ? '; secure' : ''; // 设置安全措施，为 true 则直接设置，否则为空
  
      // 把所有字符串信息都存入数组，然后调用 join() 方法转换为字符串，并写入 Cookie 信息
      document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
    } else { 
     // 如果第二个参数不存在
      let CookieValue = null;
      if (document.cookie && document.cookie !== '') {
        let Cookies = document.cookie.split(';');
        for (let i = 0; i < Cookies.length; i++) {
          let Cookie = (Cookies[i] || '').replace(/^\s+|\s+$/g, '');
          if (Cookie.substring(0, name.length + 1) === (name + '=')) {
            CookieValue = decodeURIComponent(Cookie.substring(name.length + 1));
            break;
          }
        }
      }
      return CookieValue;
    }
  };
export default Cookie;
export function setViewMode(mode) {
  Cookie('view-mode', mode)
}
export function getViewMode() {
  return Cookie('view-mode');
}